Method and apparatus for determining a position of a movable barrier

ABSTRACT

A movable barrier operator includes an absolute position detector which provides a unique value for each position of the barrier along its path of travel. The absolute position detector employs multiple binary serial streams and one multiple clock stream. After the first five cycles of the clock stream, the binary streams can be decoded by a processor to produce an absolute position. Every clock edge produces a new absolute position along the path of travel.

This is a continuation of prior application Ser. No. 09/251,307, filedFeb. 17, 1999 , now abandoned; which is hereby incorporated herein byreference in its entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The invention relates to operators for movable barriers, such as rollingshutters, retractable awnings, gates, garage doors, overhead doors andthe like, and more particularly to operators which can determine theabsolute position of the barrier at all times, including after a poweroutage and subsequent manual relocation of the barrier.

2. Description of Related Art

One of the problems which must be addressed in designing and engineeringoperators for movable barriers is the provision of barrier positiondetection. Most electronic positioning systems used in barrier operatorskeep track of the barrier's position by incrementing a position counterduring one direction of travel and decrementing the position counterduring the opposite direction of travel. This can cause errors if thereare missed pulses or extraneous pulses during travel (such as fromslippage of the barrier or motor).

Some barrier position detection systems employ a pass point. The passpoint corresponds to a fixed location on the barrier, so that wheneverthe barrier moves past the pass point, the position detector isnormalized or calibrated. By normalizing or zeroing out the positiondetector (or counter), the effects of missed pulses or slippage areeliminated. Some systems employ multiple pass points which providefurther error removal capability. The pass point is a good solution inmost situations, such as for garage door operators, which seldom movemanually.

A more significant problem can occur in motorized awnings or rollingshutters. The rolling shutter assembly is frequently installed in ahousing which is built into a wall. If power goes out on a rollingshutter system, the user will frequently move the rolling shuttermanually to either open or close it. The power is off, but the gears ofthe positioning system move without power applied to assure manualoverride of an electric system for the purpose of power failures. Someusers may also decide for convenience to move the shutter manually. Whenpower returns, if the rolling shutter has been manually moved past allpass points, the operator, not encountering the pass point reference,may cause the rolling shutter to continue to move completely into thehousing necessitating removal of the shutter from the housing. Removalof the rolling shutter from the housing frequently means removing aportion of an interior wall.

There is a need for a movable barrier operator with a positionindicating system that provides the absolute position of the barrier,even after power outages or after the barrier has been moved manually.There is a need for a movable barrier operator which can unambiguouslydetermine the position of the barrier after power is applied. There is aneed for a movable barrier operator which can unambiguously determinethe position of the barrier regardless of direction of travel.

SUMMARY OF THE INVENTION

A barrier operator position detector includes a first rotary memberwhich is encoded to generate a first N bit subcode selected from Nsequential bits of a M bit code word. The first N bit subcode has theproperty that every selected subcode of N sequential bits of the M bitcode word has a unique value. N is greater than 1 and preferably 5. M isgreater than N and preferably 32. A second rotary member is encoded togenerate a second N bit subcode selected from N sequential bits of a M−1bit code word, the second N bit subcode also has the property that everyselected subcode of N sequential bits of the M−1 bit code word has aunique value (preferably M−1 is 31). A controller, responsive to thefirst subcode and the second subcode, generates a 2N bit multibit (ortwo N-bit subcodes) code. The 2N bit multibit subcode is representativeof a unique position output, which can be decoded into a unique positionof the barrier along its travel.

A movable barrier operator according to the invention includes anabsolute position detector which provides a unique value for eachposition of the barrier along its path of travel. The absolute positiondetector employs two binary serial streams and one clock stream. Afterthe first five cycles of the clock stream, the binary serial streams canbe decoded by a microprocessor or other processor to produce an absoluteposition indication. Every clock edge produces a new absolute positionvalue along the path of travel.

The absolute position detector employs three wheels; two data wheels anda clock wheel driven by a pinon. Each wheel rotates near a wheel statedetector which produces digital signals comprising bit streams.Preferably an infrared emitter-sensor pair is used as the wheel statedetector. However, any electromechanical system which produces a digitalsignal comprising bit streams, such as Hall sensors, laser discs, and soon, may be used. For convenience, the absolute position detector of theinvention will be described in detail with reference only to theinfrared emitter-sensor embodiment.

In the preferred embodiment, two of the wheels are data wheels or gearsand have teeth distributed around their outer portions. One wheel has 32teeth, the other wheel has 31 teeth. Each tooth of each data wheel has acorresponding data bit formed in the wheel before the tooth. Each databit represents a single binary data bit. A space formed below a toothrepresents a digital low; a solid area formed below the tooth representsa digital high. The 32 teeth wheel has a 32 bit binary stream formed init. The stream is uniquely defined so that any consecutive 5 bits in thestream are different from any other consecutive 5 bits in the stream,including the rollover stream. The 31 teeth wheel is similarly defined,except the 31 teeth wheel has the same bit binary stream as the 32 bitwheel, with one bit missing.

Since the 32 teeth wheel and the 31 teeth wheel have different numbersof teeth and are driven by the same pinion, they rotate at differentspeeds. The pinion is driven externally by a gearing system that isdriven by the motor. The motor can rotate clockwise or counterclockwise,so the pinion can also turn in both directions. Since the motor isbi-directional, an attached load comprising a barrier such as a door,awning, shutter or gate can move in either of two opposite directions.Preferably direction of travel information is obtained by storing thecommanded direction of travel (e.g., the user commands the door to openby pushing the open button or to close by pushing a close button).

The movable barrier is operated through linear linkage of the load tothe motor such as a trolley, or through rotational linkage to the motor,where the load is wound around the entire operator unit, such as in arolling shutter. Since the two data wheels rotate at different speeds(because of the different number of teeth), the two binary streams havedifferent repeat rates. This means that a given 5 bit stream from the 32teeth wheel will not combine with the corresponding 5 bit stream fromthe 31 teeth wheel until 31 more revolutions of the 32 teeth wheel, orvice versa. In other words, a total of 31×32=992 unique two word valuesare possible without a rollover or repeated position concern. 992 uniquepositions is large enough to provide absolute position along a part of amovable barrier in most situations. An extra data wheel may be added formore positions (e.g., 32×31×30=29,760 positions) This mechanical linkagealso means if the unit is moved manually, the 31 bit wheel and the 32bit wheel will move, storing or representing for later reading by thecontroller, the position of the awning, door or shutter.

The third wheel is a clock wheel and is used to provide a clock signalfor the position detecting system to enable. proper sampling of the datawheel bit streams. The clock wheel includes 32 equally spaced openings.The clock wheel provides a digital low pulse signal when the center of adata bit on the 32 teeth wheel lines up with the center of a data bit onthe 31 teeth wheel and when these centers are in line with the IRsensors. The clock signal is provided to the microprocessor which usesthe clock signal as an interrupt to sample binary data fromemitter-receiver pair associated with each data wheel. After the first 5clock cycles, each data wheel has output a 5 digit binary stream, whichwhen combined, gives 2 five digit binary numbers. This 5 digit binarynumber pair is decoded by the microprocessor which calculates anabsolute position. Thereafter, every clock cycle triggers the samplingof a new binary digit from each wheel, the stored 5 bit binary numberpair is updated, and a new absolute position of the barrier isdetermined.

The movable barrier operator according to the invention with absoluteposition detector (or encoder system) provides many advantages. Itprovides the absolute position of the barrier for every pulse edge ofthe clock signal from positioning gears turned by motor's gearingsystem. Shortly after power is applied to the motor, the clock wheelwould have produced 5 pulses. After 5 pulses, the encoder systemdetermines the absolute position of the barrier. The encoder system canprovide direction of travel after six pulses of the clock wheel. Theencoder system discriminates false or unwanted pulses to prevent falsepositioning.

An absolute position is always provided shortly after power is applied(after 5 pulses and the first 5 digit binary pair is obtained),regardless of the stored value of the last position and regardless ofwhere the barrier may have been moved manually. The absolute positiondetector also provides an opportunity for the system to do a validitycheck for every newly calculated position (e.g., by checking theabsolute position between successive data streams, the direction oftravel can be ascertained). It should also be noted that no presettingof the wheels prior to installation/ operation is required.

Additional advantages and features of the invention may be appreciatedfrom a perusal of the specification, including claims in light of theaccompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a perspective view of a garage door operating system inaccordance with an embodiment of the invention;

FIG. 2 is a perspective view of a rolling shutter operating system inaccordance with an alternative embodiment of the invention;

FIG. 3 is a perspective view of the tubular motor assembly of FIG. 2;

FIGS. 4 and 5 are two exploded perspective views of the location of theabsolute position detector assembly shown in FIG. 3;

FIG. 6 is an enlarged perspective view of the absolute position detectorassembly of FIG. 4;

FIG. 7 is a graph of the 32 bit data streams produced in each of the 31bit wheel and 32 bit wheel;

FIG. 8 is an example calculation of position using the 31 bit wheel andthe 32 bit wheel;

FIG. 9 is a flow chart of the routine run by the controller to samplethe 5 bit data streams;

FIG. 10 is a flow chart of the RPM routine used by the controller tosample the 5 bit data streams; and

FIGS. 11A-C are schematic diagrams of the electronics controlling therolling shutter head unit of FIG. 2.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Referring now to the drawings, and especially to FIG. 1, a movablebarrier operator embodying the present invention is generally showntherein and identified by reference numeral 10. The movable barrieroperator 10 is employed for controlling the opening and closing of aconventional overhead garage door 12 of a garage 13. The garage door 12is mounted on guide rails 14 for movement between the closed positionillustrated in FIG. 1 and an open or raised position. The garage 13includes a ceiling 16 and a wall 18 defining an opening blocked bygarage door 12. As shown, guide rails 14 are mounted to wall 18 andceiling 16 of the garage 13 in a conventional manner.

A power drive unit or head, generally indicated at 20, is mounted to theceiling 16 in a conventional manner. An integrated drive rail 22 extendsbetween the power drive unit 20 and the garage wall 18. As can be seenin FIG. 1, one end of integrated drive rail 22 is mounted to a portionof the garage wall 18 located above the garage door 12. An operator arm26 is connected at one end to the garage door 12 and at the other end toa trolley 28 mounted for movement back and forth, along the integrateddrive rail 22. As will be seen herein, a motor in the power drive unit20 propels the trolley 28 in a desired manner to raise and lower garagedoor 12 via the coupling of the trolley 28 and the operator arm 26 tothe garage door 12.

A push button control unit 32, which includes an electronic controllerand a keypad, is coupled by electrical conductors 34 to the power driveunit 20 and sends signals to the power drive unit, controlling operationof the drive motor therein. Preferably, the power drive unit 20 alsoincludes a conventional radio receiver (not shown) for receiving radiosignals from a remote control transmitter 38. An optional auxiliarypower drive unit 40 is shown coupled to one end of integrated drive rail22, being mounted on wall 18, atop door 12. If desired, operationalflexibility of the integrated drive rail assembly may allow relocationof the main drive unit to a point adjacent the door.

Referring now to FIG. 2, a barrier operator system employing an absoluteposition detector is employed for controlling the opening and closing ofa conventional rolling shutter 112. The rolling shutter is mounted onguide rails 114 for movement between the closed position illustrated inFIG. 2 and an open or raised position. The wall 118 defines an openingblocked or covered by rolling shutter 112. As shown, guide rails 114 aremounted to wall 118 in a conventional manner.

A power drive unit or head, generally indicated at 120, is mounted tothe top of frame 110 in a conventional manner. Although the head unit isshown as being mounted on the exterior, as noted above, in manyapplications, the head unit is built into the wall so the user sees onlythe shutters. In the two views shown in FIG. 2, the head unit 120 isshown mounted on opposite sides of the top of frame 110. As will be seenherein, a motor in head unit 120 propels a sleeve or tube 142 to raiseand lower rolling shutter 112 via the coupling of sleeve 142 to rollingshutter 112.

Control for head unit 120 may be as described above for garage dooroperator 20, e.g., using a push button control or a keypad mounted atanother location on a wall. Additionally, head unit may also include aconventional radio receiver (not shown) for receiving radio signals froma remote control transmitter. If desired, the head unit 120 may bemounted on either side of the frame 110.

Outer sleeve 142 is also fixedly attached to ring 136. Ring 136 drivesabsolute position detector assembly 124. Position detector assembly 124is coupled to control board 144. Control board 144 contains theelectronics for starting and controlling motor 130 (see FIGS. 11A-C).Capacitor 126 is used to start motor 130 (described below). A brake 128is provided to slow motor 130 when the rolling shutters are approachinga limit position.

Referring to FIGS. 6 and 7, absolute position detector assembly 124includes a clock wheel 206, which is attached to axle 212 for rotationtherewith. Axle 212 rests in supports 210, and freely rotates therein,which are attached to board 144 by legs 240. Clock wheel 206 includes 32equally spaced openings 230. The clock wheel 206 provides a digital lowpulse signal when the center of a data bit on the 32 teeth wheel 202lines up with the center of a data bit on the 31 teeth wheel 204 andwhen these centers are in line with the IR sensors—through an opening230 (not shown). The clock signal is provided to the microprocessorwhich uses the clock signal as an interrupt to sample binary data fromeach data wheel. 32 bit wheel 202 is attached to axle 212 for rotationtherewith. Each complete rotation of the 32 bit wheel 202 corresponds toone complete rotation of clock wheel 206. 32 bit wheel 202 includes 32teeth or gears 220, which are driven by pinion 252 (see FIG. 4) which isdriven by ring 136. 31 bit wheel 204 includes 31 teeth or gears 222which are also driven by pinion 252. 31 bit wheel 204 freely spins aboutaxle 202. One turn of the 32 bit wheel 202 corresponds to 32/31 turns ofthe 31 bit wheel 204.

A unique bit stream pattern is formed in each of 32 bit wheel 202 and 31bit wheel 204. Beneath the teeth 220 are solid areas 224 and spaces 226.A space under a tooth 220 corresponds to a 0; a solid area 224correspond to a 1. The exact pattern is shown in FIG. 7 The first row ofpulses are the 32 pulses generated by the clock wheel 206. One completerevolution of the clock wheel generates 32 low pulses, representingsample time. The 31 bit wheel has solid and space areas which correspondto a 31 bit data stream: 1111000001110100010010101100110 as shown in thesecond row of FIG. 7. For every one complete revolution of the clockwheel, the 31 bit wheel produces the unique 31 bit data stream plus onerollover bit. The 32 bit wheel 202 generates the data stream:11111000001110100010010101100110, which is the same pattern as the 31bit data stream with the addition of an extra 1 at the beginning of thestream. This data stream is constant for every revolution of the clockwheel.

In the 32 bit stream, no five consecutive bits are repeated anywhereelse in the stream. This is also true for the 31 bit data stream. Whenthe unit is powered for movement, five consecutive (or sequential) bitsare sampled from each wheel. The decimal value is calculated for each 5bit number. The lookup table A (attached hereto) is used to convert the5 bit number to a decimal number. Then a mathematical operation isperformed on the two converted numbers (from the 31 bit wheel and the 32bit wheel) to produce an absolute position.

Referring to FIG. 7, if the unit were powered up with the wheels alignedas shown in FIG. 7, the first 5 bit data stream sampled would be: 11110for the 31 bit wheel and 11111 for the 32 bit wheel. In the next clockcycle, after rotation of 1/32 of the clock wheel a clock pulse isgenerated, the 31 bit wheel produces 11100 and the 32 bit wheel produces11110. Continuing for 32 1/32 steps, or 32 5 bit frames, each sequentialor consecutive 5 bit data stream produced by each wheel is unique.

An example calculation is shown in FIG. 8. A 5 bit data stream issampled from each of the 31 bit wheel and the 32 bit wheel. In thisexample, the 31 bit wheel produces the 5 bit data stream: 01000. The 32bit wheel produces the 5 bit data stream 10101. These numbers convert to08 (Lookup1) 21 (Lookup2), respectively, using the lookup table A.12−20=−8. If the result is negative, add 31 (Same as modulo 31arithmetic). Apply the mathematical formula:(Result×32)+Lookup2=Absolute position. This gives an absolute positionof 756 out of 992 possible positions along the path of travel.

The calculation of absolute position is performed in two interruptroutines by the controller. The first interrupt routine samples theclock and data wheels and generates the next bit to be used in thesliding window or sliding 5 bit data stream. When the clock wheelgenerates a digital low pulse, the controller executes the absoluteposition routine, shown in FIG. 9. Referring to FIG. 9, at step 300, theroutine checks if the IR sensor and detector are operational. If the IRsensor and detector are not operational, the controller leaves theroutine at step 318. If the IR sensor and detector are operational, theroutine checks if the motor is on at step 302. If not, the routine exitsat step 318. If the motor is on, the routine checks at step 304 if theclock pulse is going low, indicating the beginning of a clock pulse. Ifnot, the routine exits at step 318.

If the clock pulse is going low, the routine sets the state of the 31bit wheel (WHEEL_31_STATE) register and the state of the 32 bit wheelstate (WHEEL_32_STATE) register low in step 306. These registers storethe value of the next detected data bit. At step 308, the routine checksif the 31 bit wheel stream is high. If yes, it sets the 31 bit stateregister to high in step 310. If not, it continues to block 312 where itchecks if the 32 bit wheel stream is high. If yes, it sets the 32 bitwheel state register to high at step 314. If not, it calls the RPMroutine, then leaves the routine at step 318. The RPM routine takes thecurrent bit and uses it to create the next 5 bit data stream for use incalculating the absolute position of the shutter.

Once the 5 bit streams are computed and stored, the controller computesthe absolute position as described above and uses that information tokeep track of where the door or shutter is at each clock cycle and as avalidity check for direction of movement. It should be noted that if theawning, door or shutter is moved manually, movement of the door orshutter will drive the pinions moving the clock wheel and 31 bit wheeland 32 bit wheel, so door/shutter position is always mechanicallyrecorded in the absolute position detector assembly, ready for readingwhen the unit is powered on.

After the current bit from each wheel is stored in the appropriateregister, the RPM routine is called. Referring to FIGS. 10, at step 340,the routine checks for the direction of travel. This information istypically provided by the user input when the user selects the up buttonor down button. As noted above, this information can be verified and/orchanged if the absolute position information does not check out betweensuccessive clock pulses.

If the shutter is moving up the routine branches to step 344. If theshutter is moving down, the routine branches to step 342. Each step 342and 344 forms the appropriate sliding window (determines the consecutive5 bits to be used in calculating the shutter position). In step 344 theroutine shifts the MASK_31 bits left. The MASK_31 bit mask is a windowof all 31 bits the 31 bit wheel. Then the least significant bit of theMASK_31 is logically OR'd with the 31 bit wheel state register. Only thefirst 5 bits of the MASK_31 mask (which contains the entire 31 bit datastream represented on the 31 bit wheel) are masked. Then the MASK_32 bitmask (which contains the entire 32 bit data stream represented on the 32bit wheel) is shifted left one bit and the least significant bit of theMASK_32 bit mask is logically OR'd with the value in the 32 bit wheelstate register. Only the first 5 bits are masked. This gives two shifted5 bit data streams, one each from the 31 bit wheel and the 32 bit wheel,which are used to determine the position of the shutter for that clockcycle.

In step 342 the routine shifts the MASK_31 bits right. Then the 5thleast significant bit of the MASK_31 is logically OR'd with the WHEEL_31STATE register. Then only the first five least significant bits of theMASK_31 are masked. The MASK_32 mask is shifted one bit right. Then theMASK_32 mask is logically OR'd with the WHEEL_32_STATE register.

In step 346 the routine uses a ROM lookup table (see Table A) to get aconversion for the numbers in MASK_31 and MASK_32. These digital numbersare stored in the variables MASK_31_VALUE and MASK_32_VALUE. In step348, the difference between MASK_31_VALUE and MASK_32_VALUE iscalculated and the remainder from modulo 31 arithmetic calculated. Thisresult is called the DIFFERENCE. In step 350 the DIFFERENCE ismultiplied by 32. Then MASK_32_VALUE is added to the product. Thisnumber is the absolute position and is stored in the POS_CNTR. At step354 the routine ends.

The controller uses the POS_CNTR value in controlling the operation ofthe shutter in its other routines, which are not described.

A schematic of the control circuit located on control board 142 is shownin FIG. 11. Controller 500 operates the various software routines whichoperate the rolling shutter operator 120. Controller 500 may be a Z86733microprocessor. In this particular embodiment, the rolling shutter iscontrolled only by a wall-mounted or unit-mounted switch coupled viaconnector J2. Connector J2 has inputs for up switched hot and downswitched hot. In a rolling shutter, the motor moves only when the userpresses the power direction switch connected to connector J2 and theTriac Q1 is activated by the microcontroller. Pressing the up or downswitch applies power to the board via connector J2 and provides variousmotor phase and direction information to the controller 500. When thecontroller 500 permits travel, Triac Q1 enables the motor's neutralpath. The motor winding, which is then powered, will conduct current.

However, the control circuit can be modified to include a receiver sothat the rolling shutter can be commanded from a remote transmitter (asdescribed above). Power supply circuit 190 converts AC line power fromconnector J2 into plus 5 volts to drive the logic circuits and plus 16volts for a voltage supply to the phototransistors Q4, Q5, Q6.

Upon receipt of a rolling shutter movement command signal through J2,the motor is activated. Feedback information from the motor and AC poweris provided from J1 and applied to U3:A, U3:B, U3:C and U3:D. Theoutputs from U3:B and U3:D provide up and down phase information to pinsP26 and P25 respectively. The outputs from U3:A and U3:C provide up anddown direction to pins P21 and P20, respectively.

Crystal CR1 provides an internal clock signal for the microprocessor500. EEPROM 200 stores the information such as limit flags, force flags,learn mode flags, etc. The IR signal break from clock wheel 206 drivesQ5 which provides an input to signal P31. Wheel 31 drives Q4 whichprovides an input signal to P30. Wheel 32 drives Q3 which provides aninput signal to P33.

Table A attached hereto is the lookup table described above.

Exhibit A (pages A1-A21) attached hereto include a source listing of aseries of routines used to operate a movable barrier operator inaccordance with the present invention.

As will be appreciated from studying the description and appendeddrawings, the present invention may be directed to operator systems formovable barriers of many types, such as fences, gates, shutters,awnings, garage doors, overhead doors and the like.

While there have been illustrated and described particular embodimentsof the invention, it will be appreciated that numerous changes andmodifications will occur to those skilled in the art, and it is intendedin the appended claims to cover all those changes and modificationswhich fall within the true spirit and scope of the invention.

What is claimed is:
 1. A barrier operator position detector, comprising:a first rotary member encoded to generate a first five bit subcodeselected from five sequential bits of a 32 bit code word, the first fivebit subcode having the property that every selected subcode of fivesequential bits of the 32 bit code word has a unique value; a secondrotary member encoded to generate a second five bit subcode selectedfrom five sequential bits of a 31 bit code word, the second five bitsubcode having the property that every selected subcode of fivesequential bits of the 31 bit code word has a unique value; and acontroller, responsive to the first subcode and the second subcode, forgenerating a ten bit multibit subcode, wherein the ten bit multibitsubcode is representative of a unique position output, the positionoutput being reflective of a position of the barrier in its travel.
 2. Abarrier operator position detector comprising: a first rotary memberencoded to generate a first five bit subcode selected from fivesequential bits of a 32 bit code word, the first five bit subcode havingthe property that every selected subcode of five sequential bits of the32 bit code word has a unique value; a second rotary member encoded togenerate a second five bit subcode selected from five sequential bits ofa 31 bit code word, the second five bit subcode having the property thatevery selected subcode of five sequential bits of the 31 bit code wordhas a unique value; a controller, responsive to the first subcode andthe second subcode, for generating a ten bit multibit subcode; and aclock member for generating a timing signal, wherein the controller,responsive to the timing signal, samples the first subcode and thesecond subcode.
 3. A barrier operator position detector according toclaim 2, wherein the clock member comprises a light emitter, a lightreceiver and a rotary interrupter mechanism disposed there between forselectively interrupting transmission of light from the light emitter tothe light receiver, wherein the timing signal is generated uponinterruption of the light transmission.
 4. A barrier operator positiondetector according to claim 2, wherein the first rotary member furthercomprises 32 geared teeth and wherein the second rotary member furthercomprises 31 geared teeth, the gears being adapted for being drivinglyconnected to a shaft for rotation.
 5. A barrier operator positiondetector, comprising: a first rotary member encoded to generate a firstN bit subcode selected from N sequential bits of a M bit code word, thefirst N bit subcode having the property that every selected subcode of Nsequential bits of the M bit code word has a unique value, where N isgreater than 1 and M is greater than N; a second rotary member encodedto generate a second N bit subcode selected from N sequential bits of aM−1 bit code word, the second N bit subcode having the property thatevery selected subcode of N sequential bits of the M−1 bit code word hasa unique value; and a controller, responsive to the first subcode andthe second subcode, for generating a 2N bit multibit code, wherein the2N bit multibit subcode is representative of a unique position output,the position output being reflective of a position of the barrier in itstravel.
 6. A barrier operator position detector comprising: a firstrotary member encoded to generate a first N bit subcode selected from Nsequential bits of a M bit code word, the first N bit subcode having theproperty that every selected subcode of N sequential bits of the M bitcode word has a unique value, where N is greater than 1 and M is greaterthan N; a second rotary member encoded to generate a second N bitsubcode selected from N sequential bits of a M−1 bit code word, thesecond N bit subcode having the property that every selected subcode ofN sequential bits of the M−1 bit code word has a unique value; and acontroller, responsive to the first subcode and the second subcode, forgenerating a 2N bit multibit code, wherein the 2N bit multibit subcodeis representative of a unique position output, the position output beingreflective of a position of the barrier in its travel; and a clockmember for generating a timing signal, wherein the controller,responsive to the timing signal, samples the first subcode and thesecond subcode.
 7. A barrier operator position detector according toclaim 6, wherein the clock member comprises a light emitter, a lightreceiver and a rotary interrupter mechanism disposed there between forselectively interrupting transmission of light from the light emitter tothe light receiver, wherein the timing signal is generated uponinterruption of the light transmission.
 8. A barrier operator positiondetector according to claim 6, wherein the first rotary member furthercomprises M geared teeth and wherein the second rotary member furthercomprises M−1 geared teeth, the gears being adapted for being drivinglyconnected to a shaft for rotation.
 9. A movable barrier operator,comprising: a motor; a transmission connected to the motor to be driventhereby and to the movable barrier to be moved; a barrier operatorposition detector, comprising: a first rotary member encoded to generatea first N bit subcode selected from N sequential bits of a M bit codeword, the first N bit subcode having the property that every selectedsubcode of N sequential bits of the M bit code word has a unique value,where N is greater than 1 and M is greater than N; and a second rotarymember encoded to generate a second N bit subcode selected from Nsequential bits of a M−1 bit code word, the second N bit subcode havingthe property that every selected subcode of N sequential bits of the M−1bit code word has a unique value; and a controller, responsive to thefirst subcode and the second subcode, for generating a 2N bit multibitcode, wherein the 2N bit multibit subcode is representative of a uniqueposition output, the position output being reflective of a position ofthe barrier in its travel.
 10. A movable barrier operator comprising: amotor; a transmission connected to the motor to be driven thereby and tothe movable barrier to be moved; a barrier operator position detector,comprising: a first rotary member encoded to generate a first N bitsubcode selected from N sequential bits of a M bit code word, the firstN bit subcode having the property that every selected subcode of Nsequential bits of the M bit code word has a unique value, where N isgreater than 1 and M is greater than N; and a second rotary memberencoded to generate a second N bit subcode selected from N sequentialbits of a M−1 bit code word, the second N bit subcode having theproperty that every selected subcode of N sequential bits of the M−1 bitcode word has a unique value; and a controller, responsive to the firstsubcode and the second subcode, for generating a 2N bit multibit code,wherein the 2N bit multibit subcode is representative of a uniqueposition output, the position output being reflective of a position ofthe barrier in its travel wherein the position detector furthercomprises a clock member for generating a timing signal, and wherein thecontroller, responsive to the timing signal, samples the first subcodeand the second subcode.
 11. A movable barrier operator according toclaim 10, wherein the clock member comprises a light emitter, a lightreceiver and a rotary interrupter mechanism disposed there between forselectively interrupting transmission of light from the light emitter tothe light receiver, wherein the timing signal is generated uponinterruption of the light transmission.
 12. A movable barrier operatorcomprising: a motor; a transmission connected to the motor to be driventhereby and to the movable barrier to be moved; a barrier operatorposition detector, comprising: a first rotary member encoded to generatea first N bit subcode selected from N sequential bits of a M bit codeword, the first N bit subcode having the property that every selectedsubcode of N sequential bits of the M bit code word has a unique value,where N is greater than 1 and M is greater than N; and a second rotarymember encoded to generate a second N bit subcode selected from Nsequential bits of a M−1 bit code word, the second N bit subcode havingthe property that every selected subcode of N sequential bits of the M−1bit code word has a unique value; and a controller, responsive to thefirst subcode and the second subcode, for generating a 2N bit multibitcode, wherein the 2N bit multibit subcode is representative of a uniqueposition output, the position output being reflective of a position ofthe barrier in its travel wherein the first rotary member furthercomprises M geared teeth and wherein the second rotary member furthercomprises M−1 geared teeth, the gears being adapted for being drivinglyconnected to a shaft for rotation.
 13. A movable barrier operatoraccording to claim 12, wherein the motor includes an output shaft, the Mand M−1 geared teeth being drivingly connected to the motor shaft.
 14. Amovable barrier operator according to claim 13, further comprising acommon pinion driven by the motor shaft and engaging each gear of thefirst and second rotary members.
 15. A movable barrier operatorcomprising: a motor; a transmission connected to the motor to be driventhereby and to the movable barrier to be moved; a barrier operatorposition detector, comprising: a first rotary member encoded to generatea first N bit subcode selected from N sequential bits of a M bit codeword, the first N bit subcode having the property that every selectedsubcode of N sequential bits of the M bit code word has a unique value,where N is greater than 1 and M is greater than N; and a second rotarymember encoded to generate a second N bit subcode selected from Nsequential bits of a M−1 bit code word, the second N bit subcode havingthe property that every selected subcode of N sequential bits of the M−1bit code word has a unique value; a controller, responsive to the firstsubcode and the second subcode, for generating a 2N bit multibit code,wherein the 2N bit multibit subcode is representative of a uniqueposition output, the position output being reflective of a position ofthe barrier in its travel; and an input device for commanding movementof the barrier in one of two directions and wherein the controller,responsive to the input device, stores direction of travel of thebarrier.
 16. A barrier operator position detector, comprising: a firstrotary member, responsive to movement of the barrier, encoded togenerate a first N bit subcode selected from N sequential bits of a Mbit code word, the first N bit subcode having the property that everyselected subcode of N sequential bits of the M bit code word has aunique value, where N is greater than 1 and M is greater than N; asecond rotary member, responsive to movement of the barrier, encoded togenerate a second N bit subcode selected from N sequential bits of a M−1bit code word, the second N bit subcode having the property that everyselected subcode of N sequential bits of the M−1 bit code word has aunique value; and a controller, responsive to the first subcode and thesecond subcode, for generating a 2N bit multibit code, wherein the 2Nbit multibit subcode is representative of a unique position output, theposition output being reflective of a position of the barrier in itstravel.
 17. A barrier operator position detector comprising: a firstrotary member, responsive to movement of the barrier, encoded togenerate a first N bit subcode selected from N sequential bits of a Mbit code word, the first N bit subcode having the property that everyselected subcode of N sequential bits of the M bit code word has aunique value, where N is greater than 1 and M is greater than N; asecond rotary member, responsive to movement of the barrier, encoded togenerate a second N bit subcode selected from N sequential bits of a M−1bit code word, the second N bit subcode having the property that everyselected subcode of N sequential bits of the M−1 bit code word has aunique value; and a controller, responsive to the first subcode and thesecond subcode, for generating a 2N bit multibit code, wherein the 2Nbit multibit subcode is representative of a unique position output, theposition output being reflective of a position of the barrier in itstravel wherein the first and second rotary members are responsive to ashaft rotation of the barrier.
 18. A barrier operator position detectorcomprising: a first rotary member, responsive to movement of thebarrier, encoded to generate a first N bit subcode selected from Nsequential bits of a M bit code word, the first N bit subcode having theproperty that every selected subcode of N sequential bits of the M bitcode word has a unique value, where N is greater than 1 and M is greaterthan N; a second rotary member, responsive to movement of the barrier,encoded to generate a second N bit subcode selected from N sequentialbits of a M−1 bit code word, the second N bit subcode having theproperty that every selected subcode of N sequential bits of the M−1 bitcode word has a unique value; a controller, responsive to the firstsubcode and the second subcode, for generating a 2N bit multibit code,wherein the 2N bit multibit subcode is representative of a uniqueposition output, the position output being reflective of a position ofthe barrier in its travel; and a clock member, responsive to movement ofthe barrier, for generating a timing signal, wherein the controller,responsive to the timing signal, samples the first subcode and thesecond subcode.